/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package merlion.mrp.ppm.pojo;

import java.util.ArrayList;

/**
 *
 * @author Zhang Ying
 */
public class ScheduleResultTemp {

    private ArrayList<ArrayList<ArrayList<Double>>> scheduledNormalResults; // 5 * 4 * 2
    // output: 5 * 4 * 2, day, product, line
    // input: newDMPS, you may need to use the call to get the dailydemand for product i on day i
    // newDMPS.returnIndivDMPS(productIndex).returnDailyPlannedProduction(dayIndex).getDailyDemand()
    private ArrayList<ArrayList<ArrayList<Double>>> scheduledOvertimeResults; // 5 * 4 *2
    private ArrayList<ArrayList<Double>> normalScheduledCapacities; // 5 * 2
    private ArrayList<ArrayList<Double>> overtimeScheduledCapacities; // 5 * 2
    private ArrayList<ArrayList<Double>> normalScheduledUtilization; // 5 * 2
    private ArrayList<ArrayList<Double>> overtimeScheduledUtilization; // 5 * 2
    private boolean needHumanIntervention;

    public ScheduleResultTemp() {
        needHumanIntervention = false;
        scheduledNormalResults = new ArrayList<ArrayList<ArrayList<Double>>>();
        scheduledOvertimeResults = new ArrayList<ArrayList<ArrayList<Double>>>();
        normalScheduledCapacities = new ArrayList<ArrayList<Double>>();
        overtimeScheduledCapacities = new ArrayList<ArrayList<Double>>();
        normalScheduledUtilization = new ArrayList<ArrayList<Double>>();
        overtimeScheduledUtilization = new ArrayList<ArrayList<Double>>();
        for (int i = 0; i < 5; i++) {
            ArrayList<ArrayList<Double>> normal = new ArrayList<ArrayList<Double>>();
            ArrayList<ArrayList<Double>> ot = new ArrayList<ArrayList<Double>>();
            for (int j = 0; j < 4; j++) {
                ArrayList<Double> n = new ArrayList<Double>();
                ArrayList<Double> o = new ArrayList<Double>();
                for (int k = 0; k < 2; k++) {
                    n.add(0.0);
                    o.add(0.0);
                }
                normal.add(n);
                ot.add(o);
            }
            scheduledNormalResults.add(normal);
            scheduledOvertimeResults.add(ot);
        }
        for (int i = 0; i < 5; i++) {
            ArrayList<Double> nsc = new ArrayList<Double>();
            ArrayList<Double> osc = new ArrayList<Double>();
            ArrayList<Double> nsu = new ArrayList<Double>();
            ArrayList<Double> osu = new ArrayList<Double>();
            for (int j = 0; j < 2; j++) {
                nsc.add(0.0);
                osc.add(0.0);
                nsu.add(0.0);
                osu.add(0.0);
            }
            normalScheduledCapacities.add(nsc);
            overtimeScheduledCapacities.add(osc);
            normalScheduledUtilization.add(nsu);
            overtimeScheduledUtilization.add(osu);
        }
    }

    public boolean isNeedHumanIntervention() {
        return needHumanIntervention;
    }

    public void setNeedHumanIntervention(boolean needHumanIntervention) {
        this.needHumanIntervention = needHumanIntervention;
    }

    public ArrayList<ArrayList<Double>> getNormalScheduledCapacities() {
        return normalScheduledCapacities;
    }

    public void usetNormalScheduledCapacities(ArrayList<ArrayList<Double>> normalScheduledCapacities) {
        this.normalScheduledCapacities = normalScheduledCapacities;
    }

    public ArrayList<ArrayList<Double>> getNormalScheduledUtilization() {
        return normalScheduledUtilization;
    }

    public void setNormalScheduledUtilization(ArrayList<ArrayList<Double>> normalScheduledUtilization) {
        this.normalScheduledUtilization = normalScheduledUtilization;
    }

    public ArrayList<ArrayList<Double>> getOvertimeScheduledCapacities() {
        return overtimeScheduledCapacities;
    }

    public void setOvertimeScheduledCapacities(ArrayList<ArrayList<Double>> overtimeScheduledCapacities) {
        this.overtimeScheduledCapacities = overtimeScheduledCapacities;
    }

    public ArrayList<ArrayList<Double>> getOvertimeScheduledUtilization() {
        return overtimeScheduledUtilization;
    }

    public void setOvertimeScheduledUtilization(ArrayList<ArrayList<Double>> overtimeScheduledUtilization) {
        this.overtimeScheduledUtilization = overtimeScheduledUtilization;
    }

    public ArrayList<ArrayList<ArrayList<Double>>> getScheduledNormalResults() {
        return scheduledNormalResults;
    }

    public void setScheduledNormalResults(ArrayList<ArrayList<ArrayList<Double>>> scheduledNormalResults) {
        this.scheduledNormalResults = scheduledNormalResults;
    }

    public ArrayList<ArrayList<ArrayList<Double>>> getScheduledOvertimeResults() {
        return scheduledOvertimeResults;
    }

    public void setScheduledOvertimeResults(ArrayList<ArrayList<ArrayList<Double>>> scheduledOvertimeResults) {
        this.scheduledOvertimeResults = scheduledOvertimeResults;
    }
}
